/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.3.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     blastFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         0.06;

deltaT          1e-7;

writeControl    adjustableRunTime;

writeInterval   5e-3;

cycleWrite      0;

writeFormat     binary;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   12;

runTimeModifiable true;

adjustTimeStep  yes;

maxCo           0.5;

maxDeltaT       1;

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

functions
{
    impulse
    {
        type                impulse;

        writeControl        writeTime;
        pRef                101298;
    }
    overpressure
    {
        type                overpressure;

        writeControl        writeTime;
        store               yes;
        pRef                101298;
    }
    maxPImpulse
    {
        type                fieldMinMax;

        writeControl        writeTime;
        fields
        (
            overpressure
            impulse
        );
    }

    surfaces
    {
        type                surfaces;
        writeControl        adjustableRunTime;
        writeInterval       1e-4;
        interpolate         false;
        interpolationScheme cellPointFace;
        surfaceFormat       vtk;
        fields ( p );
        surfaces
        (
            ground
            {
                type        patch;
                patches     (ground);
                triangulate false;
            }
            pContours
            {
                type        isoSurface;
                isoField    p;
                isoValues   (1.1e5);
            }
            zNormal
            {
                type        cuttingPlane;
                planeType   pointAndNormal;
                pointAndNormalDict
                {
                    point   (0 0 0.5);
                    normal  (0 0 1);
                }
                interpolate true;
            }
            yNormal
            {
                type        cuttingPlane;
                planeType   pointAndNormal;
                pointAndNormalDict
                {
                    point   (0 0 0.5);
                    normal  (0 1 0);
                }
                interpolate true;
            }
            xNormal
            {
                type        cuttingPlane;
                planeType   pointAndNormal;
                pointAndNormalDict
                {
                    point   (0 0 0.5);
                    normal  (1 0 0);
                }
                interpolate true;
            }
        );
    }

    pressureProbes
    {
        type                blastProbes;
        writeControl        timeStep;
        writeInterval       1;
        adjustLocations     yes;
        append yes;
        probeLocations
        (
            // probe locations in ( x y z ) format
            // unlimited number -- needs to be inside the domain!
(25.0 0 0)
(25.0 0 1.3)
(25.0 0 2.6)
(25.0 0 4)
(25.0 1.3 0)
(25.0 1.3 1.3)
(25.0 1.3 2.6)
(25.0 1.3 4)
(25.0 2.5 0)
(25.0 2.5 1.3)
(25.0 2.5 2.6)
(25.0 2.5 4)
(25.0 3.8 0)
(25.0 3.8 1.3)
(25.0 3.8 2.6)
(25.0 3.8 4)
(25.7 0 0)
(25.7 0 1.3)
(25.7 0 2.6)
(25.7 0 4)
(25.7 0.6 0)
(25.7 0.6 1.3)
(25.7 0.6 2.6)
(25.7 0.6 4)
(25.7 1.2 0)
(25.7 1.2 1.3)
(25.7 1.2 2.6)
(25.7 1.2 4)
(25.7 1.8 0)
(25.7 1.8 1.3)
(25.7 1.8 2.6)
(25.7 1.8 4)
            // etc.
        );
        fields
        (
            p
	    overpressure
            impulse
        );
    }
};

// ************************************************************************* //
